<!DOCTYPE html>
<!-- jsdom only test without offsetHeight -->
<title>Test element names are case-insensitive only in ASCII range</title>
<link rel="help" href="https://www.w3.org/TR/selectors-4/#case-sensitive">
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<style>
\212A {
  display: block;
  background: lime;
  width: 200px;
  height: 100px;
}
</style>
<body>
  <p>You should see a green square below.</p>
  <div id="container"></div>
<script>
"use strict";
// Insert from JavaScript to avoid parser doing something special.
const test_element = document.createElement("\u212A");
const container = document.getElementById("container");
container.appendChild(test_element);
const test_element_with_ns = document.createElementNS("https://dummy.ns", "\u212A");
container.appendChild(test_element_with_ns);

test(() => {
  assert_true(test_element.matches("\u212A"));
}, "CSS selector should match for Unicode uppercase element");

test(() => {
  assert_true(test_element_with_ns.matches("\u212A"));
}, "Elements with namespace should work the same way");

test(() => {
  let e = document.querySelector("k");
  assert_equals(e, null);
  e = document.querySelector("\u212A".toLowerCase());
  assert_equals(e, null);
}, "`querySelector` should not use Unicode case-folding");
</script>
</body>
